#pragma once

#include "UI\Widgets\Widget.h"
#include "UI\Widgets\Button.h"
#include "UI\Widgets\Label.h"

#include "UI\Widgets\WidgetFactory.inl"

namespace ShRp
{
	namespace UI
	{
		class WidgetFactory
		{
		public:
			static bool Init();
			static void Terminate();

		public:
			// Creates a control of specified type.
			static Widget* CreateWidget(Widget::Type::E _WidgetType, Control* _Parent)
				StartWidgetTypes(
				// Insert AddWidgetType calls here.
				// AddWidgetType( Type, { Code to be inserted after object creation }
				AddWidgetType( Button, {},
				AddWidgetType( Label, {},
			//	AddWidgetType( SimpleWidget, {},
				EndWidgetTypes()
				)) // Add closing bracket for each AddWidgetType here.
				)
		};
	};
};